package querydsl.domain;

import com.querydsl.core.types.Path;
import com.querydsl.core.types.PathMetadata;
import com.querydsl.core.types.dsl.BooleanPath;
import com.querydsl.core.types.dsl.DateTimePath;
import com.querydsl.core.types.dsl.NumberPath;
import com.querydsl.core.types.dsl.StringPath;
import com.querydsl.sql.ColumnMetadata;

import javax.annotation.Generated;
import java.sql.Types;

import static com.querydsl.core.types.PathMetadataFactory.forVariable;


/**
 * QPrivilege is a Querydsl query type for Privilege
 */
@Generated("com.querydsl.sql.codegen.MetaDataSerializer")
public class QPrivilege extends com.querydsl.sql.RelationalPathBase<Privilege> {

    private static final long serialVersionUID = -1091364377;

    public static final QPrivilege privilege = new QPrivilege("privilege");

    public final BooleanPath available = createBoolean("available");

    public final StringPath createBy = createString("createBy");

    public final DateTimePath<java.sql.Timestamp> created = createDateTime("created", java.sql.Timestamp.class);

    public final BooleanPath dataValid = createBoolean("dataValid");

    public final StringPath ico = createString("ico");

    public final StringPath id = createString("id");

    public final DateTimePath<java.sql.Timestamp> modified = createDateTime("modified", java.sql.Timestamp.class);

    public final StringPath modifyBy = createString("modifyBy");

    public final StringPath name = createString("name");

    public final StringPath ownerOrg = createString("ownerOrg");

    public final StringPath parentId = createString("parentId");

    public final StringPath parentIds = createString("parentIds");

    public final StringPath permission = createString("permission");

    public final NumberPath<Integer> sequence = createNumber("sequence", Integer.class);

    public final StringPath type = createString("type");

    public final StringPath url = createString("url");

    public final com.querydsl.sql.PrimaryKey<Privilege> primary = createPrimaryKey(id);

    public QPrivilege(String variable) {
        super(Privilege.class, forVariable(variable), "null", "privilege");
        addMetadata();
    }

    public QPrivilege(String variable, String schema, String table) {
        super(Privilege.class, forVariable(variable), schema, table);
        addMetadata();
    }

    public QPrivilege(String variable, String schema) {
        super(Privilege.class, forVariable(variable), schema, "privilege");
        addMetadata();
    }

    public QPrivilege(Path<? extends Privilege> path) {
        super(path.getType(), path.getMetadata(), "null", "privilege");
        addMetadata();
    }

    public QPrivilege(PathMetadata metadata) {
        super(Privilege.class, metadata, "null", "privilege");
        addMetadata();
    }

    public void addMetadata() {
        addMetadata(available, ColumnMetadata.named("available").withIndex(10).ofType(Types.BIT));
        addMetadata(createBy, ColumnMetadata.named("create_by").withIndex(11).ofType(Types.VARCHAR).withSize(32));
        addMetadata(created, ColumnMetadata.named("created").withIndex(12).ofType(Types.TIMESTAMP).withSize(19));
        addMetadata(dataValid, ColumnMetadata.named("data_valid").withIndex(16).ofType(Types.BIT));
        addMetadata(ico, ColumnMetadata.named("ico").withIndex(5).ofType(Types.VARCHAR).withSize(255));
        addMetadata(id, ColumnMetadata.named("id").withIndex(1).ofType(Types.VARCHAR).withSize(255).notNull());
        addMetadata(modified, ColumnMetadata.named("modified").withIndex(14).ofType(Types.TIMESTAMP).withSize(19));
        addMetadata(modifyBy, ColumnMetadata.named("modify_by").withIndex(13).ofType(Types.VARCHAR).withSize(32));
        addMetadata(name, ColumnMetadata.named("name").withIndex(2).ofType(Types.VARCHAR).withSize(255));
        addMetadata(ownerOrg, ColumnMetadata.named("owner_org").withIndex(15).ofType(Types.VARCHAR).withSize(32));
        addMetadata(parentId, ColumnMetadata.named("parentId").withIndex(7).ofType(Types.VARCHAR).withSize(255));
        addMetadata(parentIds, ColumnMetadata.named("parentIds").withIndex(8).ofType(Types.VARCHAR).withSize(255));
        addMetadata(permission, ColumnMetadata.named("permission").withIndex(9).ofType(Types.VARCHAR).withSize(255));
        addMetadata(sequence, ColumnMetadata.named("sequence").withIndex(6).ofType(Types.INTEGER).withSize(10));
        addMetadata(type, ColumnMetadata.named("type").withIndex(3).ofType(Types.VARCHAR).withSize(255));
        addMetadata(url, ColumnMetadata.named("url").withIndex(4).ofType(Types.VARCHAR).withSize(255));
    }

}

